import { ElMessage } from 'element-plus'
import Clipboard from 'clipboard'

/**
 * 剪贴板操作成功提示
 * @param text 提示文本
 */
function clipboardSuccess(text: string): void {
  ElMessage({
    message: text,
    type: 'success',
    duration: 1500
  })
}

/**
 * 剪贴板操作失败提示
 * @param text 提示文本
 */
function clipboardError(text: string): void {
  ElMessage({
    message: text,
    type: 'error'
  })
}

/**
 * 处理剪贴板操作
 * @param text 要复制的文本
 * @param event 触发事件
 * @param successText 成功提示文本
 * @param errorText 失败提示文本
 */
export default function handleClipboard(
  text: string,
  event: Event,
  successText: string = '复制成功',
  errorText: string = '复制失败'
): void {
  const clipboard = new Clipboard(event.target as Element, {
    text: () => text
  })
  
  clipboard.on('success', () => {
    clipboardSuccess(successText)
    clipboard.destroy()
  })
  
  clipboard.on('error', () => {
    clipboardError(errorText)
    clipboard.destroy()
  })
  
  clipboard.onClick(event)
}
